package laboratorioV.grupo21.tp4.productos;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashSet;

public class ProductosFromDB {
	
	public Producto getById(String pId){
		Producto productoAux = null;
		PreparedStatement ps = null;		
		Connection con = null;		
		
		try{
			Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
			
			con = DriverManager.getConnection("jdbc:derby:derbyDb/TP6;create=false");
						
			ps = con.prepareStatement("SELECT * FROM PRODUCTOS WHERE ID_PRODUCTO = ?");
			ps.setInt(1, Integer.parseInt(pId));
		    java.sql.ResultSet rs = ps.executeQuery();
		      
		    while(rs.next()){
		    	productoAux = new Producto(rs.getInt("ID_PRODUCTO"), rs.getString("DESCRIPCION"), rs.getInt("ID_CATEGORIA"));	
		    	return productoAux;
		    }			
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
		}
		finally{
			try {
				if(con != null)con.close();
			} catch (SQLException e) {				
				e.printStackTrace();
			}
			
		}
		return null;
	}
	
	public HashSet<Producto> getProductos(){
		Producto productoAux = null;
		PreparedStatement ps = null;		
		Connection con = null;		
		HashSet<Producto> setProductos = new HashSet<Producto>();
		try{
			Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
			
			con = DriverManager.getConnection("jdbc:derby:derbyDb/TP6;create=false");
						
			ps = con.prepareStatement("SELECT * FROM PRODUCTOS");			
		    java.sql.ResultSet rs = ps.executeQuery();
		      
		    while(rs.next()){
		    	productoAux = new Producto(rs.getInt("ID_PRODUCTO"), rs.getString("DESCRIPCION"), rs.getInt("ID_CATEGORIA"));	
		    	setProductos.add(productoAux);
		    }	
		    return setProductos;
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
		}
		finally{
			try {
				if(con != null)con.close();
			} catch (SQLException e) {				
				e.printStackTrace();
			}
			
		}
		return null;
	}
	
}
